home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / zpont311.lha / zpoint-3.11 / Rexx / ReadMessageExternal.cedzp < prev    next >
Text File  |  1995-03-09  |  4KB  |  213 lines

  1. /*
  2.    ReadMessageExternal.ced v1.3 (26.2.94) by Ueli Kaufmann
  3.    ARexx Skript für Zodiac's Point V37.120ß und Cygnus-Ed v2.12
  4.  
  5. Zweck:
  6. ------
  7.    Vom Cygnus-Editor aus kontinuierlich neue Nachrichten lesen ohne
  8.    dauernd zwischen Reader und Brett-Menue hinundherzuzappen..
  9.  
  10.  
  11. Historisches:
  12. -------------
  13.    v1.3
  14.    ----
  15.    - Suffix von *.ced auf *.cedzp geaendert.
  16.    - Beim Verlassen eines Bretts koennen ungelesene
  17.      Nachrichten als ALT markiert werden..
  18.  
  19.    v1.2
  20.    ----
  21.    - Suffix wurde von .rexx nach .ced geaendert, um der
  22.      "Ralph's ARexx Style-Guide" genuege zu tun ;)
  23.    - anstatt wie bisher blind alle Nachrichten lesen zu muessen,
  24.      oeffnet sich vor dem Laden der Nachricht ein Requester mit
  25.      der Frage, ob die Nachricht von XXX mit dem Betreff YYY
  26.      gelesen werden moechte..
  27.  
  28.    v1.1
  29.    ----
  30.    - Die erste Nachricht muss nicht mehr vom ZPzc aus gelesen werden.
  31.    - Funktioniert nun auch aus dem Main-Menu und dem Board-Menu.
  32.    - ZPoint-Konfig (Reader-Befehl) muss nicht mehr veraendert werden..
  33.  
  34.  
  35. Installation:
  36. -------------
  37.  Skript:
  38.    nach ZP:Rexx/ kopieren.
  39.  
  40.  Cygnus-Ed:
  41.    Skript auf einer F-Taste installieren. (Speichern nicht vergessen ;)
  42.  
  43.  
  44. Bedienung:
  45. ----------
  46.    - ZPoint starten. Geht leider (noch ;) nicht ohne..
  47.    - Cygnus-Ed starten, bzw. neues Fenster oeffnen..
  48.    - Mittels F-Taste sich durch die Bretter/Nachrichten togglen..
  49. */
  50.  
  51.  
  52. parse arg zpPort        /* ZP-Port Name als Argument erhalten. */
  53. if zpPort == "" then    /* Wirklich? */
  54.    zpPort = "ZPoint"    /* Ätschi-Bätschi */
  55.  
  56.  
  57. options results
  58.  
  59. address "rexx_ced"
  60.  
  61. CEDTOFRONT
  62.  
  63. 'Clear'        /* aktuelles Fenster loeschen */
  64.  
  65.  
  66. address value zpPort    /* fuer die hardcore-user mit mehreren zps ;) */
  67.  
  68.  
  69.  
  70. /***********************/
  71. WHICHLEVEL
  72. level = RESULT
  73.  
  74. if level = "MAINMENU" then
  75. do
  76.    BOARDMENU
  77.    if new_board() = 0 then
  78.       exit
  79. end
  80. else
  81. do
  82.    if level = "BOARDMENU" then
  83.    do
  84.       if new_board() = 0 then
  85.          exit
  86.    end
  87. end
  88. /***********************/
  89.  
  90.  
  91.  
  92. /*
  93.   wenn wir hier ankommen, sind wir in
  94.   einem Brett mit neuen Nachrichten.
  95. */
  96.  
  97. /***********************/
  98. MESSAGEINFO Age      /* ist die aktuelle Nachricht neu? */
  99. x = RESULT
  100. if x ~= "NEW" then   /* Nein :-( */
  101. do
  102.    if new_msg() = 0 then
  103.         exit
  104. end
  105. /***********************/
  106.  
  107.  
  108. /*
  109.   wenn wir hier ankommen, befindet sich der
  110.   Nachrichtenbalken auf einer ungelesenen Nachricht.
  111.   Aber will sie der User auch lesen?
  112. */
  113.  
  114. /***********************/
  115. do forever
  116.         MESSAGEINFO Author   /* Absender ermitteln */
  117.    msgAddr = RESULT
  118.  
  119.    MESSAGEINFO Subject  /* Betreff ermitteln */
  120.    msgSubj = RESULT
  121.  
  122.    address "rexx_ced"   /* und nachfragen */
  123.    OKAY2 "$ Von :" msgAddr || '0a'x || "$ Betr:" msgSubj
  124.    address
  125.  
  126.    if RESULT ~= 0 then
  127.       leave             /* Ja, der User will die aktuelle Nachricht lesen */
  128.    else
  129.    do
  130.    /* MARKASOLD */      /* Nein, nicht lesen! Neue suchen.. */
  131.       if new_msg() = 0 then
  132.            exit
  133.    end
  134. end
  135. /***********************/
  136.  
  137.  
  138. /*
  139.    falls wir hier ankommen, steht der Nachrichtenbalken auf
  140.    einer neuen Nachricht, die der User lesen moechte..
  141. */
  142.  
  143. /***********************/
  144. tmpFile = 'T:for_your_eyes_only'
  145.  
  146. address Command "Delete >nil:" tmpFile     /* mögliches altes File löschen */
  147. SAVEMESSAGE tmpFile                           /* Nachricht speichern */
  148. MARKASOLD                                  /* als alt markieren. */
  149.  
  150. ADDRESS "rexx_ced"
  151.  
  152. 'Open...' tmpFile                   /* File laden */
  153. /***********************/
  154.  
  155.  
  156. exit  /* et fini */
  157.  
  158.  
  159.  
  160. /***********************/
  161.  
  162. new_board:
  163.    JUMPTONEW down
  164.    if rc ~= 0 then
  165.       ENTERBOARD
  166.         else
  167.         do
  168.         address "rexx_ced"
  169.       OKAY1 "Kein Brett mit neuen Nachrichten gefunden.. :-("
  170.       address
  171.       return(0)
  172.         end
  173.  
  174. return(1)
  175.  
  176. /***********************/
  177.  
  178. new_msg:
  179.    JUMPTONEW down    /* naechste neue Nachricht finden */
  180.    if rc = 0 then    /* keine gefunden :( */
  181.    do
  182.         address "rexx_ced"
  183.       OKAY2 "Keine neue Nachricht mehr in diesem Brett.. :-("'0a'x"Suche nach weiteren Nachrichten"
  184.       x = RESULT
  185.  
  186.       address
  187.  
  188.       if x ~= 0 then
  189.       do
  190.          address
  191.  
  192.          OKAY2 "Sollen alle neuen Nachrichten auf ALT gesetzt werden?"
  193.          x = RESULT
  194.  
  195.          address
  196.          if x ~= 0 then
  197.          do
  198.             SELECTMESSAGE New
  199.             MARKASOLD
  200.          end
  201.  
  202.          BOARDMENU
  203.          if new_board() = 0 then
  204.             return(0)
  205.       end
  206.       else
  207.          return(0)
  208.    end
  209.  
  210. return(1)
  211.  
  212. /***********************/
  213.